package com.szrt.java.day20170109.demo03;


import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

import org.junit.Test;


/**
 * 以后凡是看到空指针异常  NullPointerException 都是同一种请求
 * 
 * 在 null 上调用了一个方法。
 * @author zsrt
 *
 */
public class ArrayListTest {
	
	
	@Test
	public void sort() throws Exception {
		List<Student> studentList = new ArrayList<Student>();
		
		
		Student lyh= new Student();
		lyh.setName("刘宇宏");
		lyh.setPhone("15989309781");
		lyh.setAge(24);
		
		Student lh= new Student();
		lh.setName("刘浩");
		lh.setPhone("15766772111"); 
		lh.setAge(20);
		
		Student lh2= new Student();
		lh2.setName("刘浩2");
		lh2.setPhone("15766772111"); 
		lh2.setAge(33);
		
		studentList.add(lyh);
		studentList.add(lh);
		studentList.add(lh2);
		
		
		// api = 让傻瓜都知道怎么编程。 熟练掌握方法怎么用。
		Collections.sort(studentList);
		
		System.out.println(studentList);
	}
	
	@Test
	public void add() throws Exception {
		List<Student> studentList = new ArrayList<Student>();
		
		
		Student lyh= new Student();
		lyh.setName("刘宇宏");
		lyh.setPhone("15989309781");
		lyh.setAge(24);
		
		Student lh= new Student();
		lh.setName("刘浩");
		lh.setPhone("15766772111"); 
		lh.setAge(20);
		
		studentList.add(lyh);
		studentList.add(lh);
		
		System.out.println("修改之前==========================");
		System.out.println(studentList);
		
		//当我们把2个学生增加到集合里面去之后：发现问题： 刘浩的手机号码 写错了。 这时候 把刘浩的手机号码修改为正确的手机号码：15766772116 24
		
		//1 遍历集合studentList
		for(int index=0;index<studentList.size();index++){
			
			//不是基本类型的变量传的是地址  Set
			Student stu = studentList.get(index);
			changeStduent("刘浩", "15766772116", 24, stu);
			
		}
		System.out.println("修改之后==========================");
		System.out.println(studentList);
	}
	
	//需求：你随便给我个姓名：然后我可以修改这个姓名对应的 手机号码和年龄  已知：被修改的姓名  修改之后的手机号码  修改之后的年龄?
	
	// 分析  传地址
	
	public void changeStduent(String searchName,String newPhone,int newAge,Student student){
		String name = student.getName();
		//3 如果等于刘浩 把刘浩的手机号码改成正确的号码15766772116 如果不等于刘浩 什么都不做。直接找下一个。
		if(searchName.equals(name)){
			student.setPhone(newPhone);
			student.setAge(newAge);
		}
	}
	

}
